{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## RUL prediction using boosting\n",
    "\n",
    "In this notebook, we will apply boosting to predict RUL of NASA's turbofan engine dataset FD002. To implement boosting, we will use [XGBoost](https://xgboost.readthedocs.io/en/latest/index.html) library."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import xgboost as xgb\n",
    "\n",
    "from sklearn.metrics import mean_squared_error\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.random.seed(83)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Numpy version:  1.18.5\n",
      "Pandas version:  1.0.5\n",
      "XGBoost version:  1.2.0\n"
     ]
    }
   ],
   "source": [
    "print(\"Numpy version: \", np.__version__)\n",
    "print(\"Pandas version: \", pd.__version__)\n",
    "print(\"XGBoost version: \", xgb.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data Preprocessing\n",
    "\n",
    "We strongly encourage readers to go through the [dataset description and prreprocessing notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_data_description_and_preprocessing.ipynb). In that notebook we have explained how data preprocessing functions work with simple examples. In this notebook we will only use those functions. So prior familiarity with these functions is an advantage. Below are the parameters that we will use for data preprocessing:\n",
    "\n",
    "* Degradation model: Linear\n",
    "* Early RUL: None\n",
    "* Window length: 1\n",
    "* Shift: 1\n",
    "* Data scaling: No (Tree based methods don't require data scaling)\n",
    "\n",
    "We will calculate two prediction scores on test data. In one case, we will take last 5 examples of test data for engine, calculate their predictions, and finally average those for each engine. In the second case, we will take only the last example of each engine and make predictions. The logic behind taking last 5 examples and averaging their predictions is to make the prediction robust against outliers. Due to some external factor, if our last example happens to be corrupted, its prediction outcome might be far off from the actual one. But if we average predictions from last 5 examples, we will get a more conservative estimate. \n",
    "\n",
    "In the following cell we will show boxplots of each column of training data. That will give us an idea about the values in different columns. If all the values in a column are constant, we drop those columns from our analysis.\n",
    "\n",
    "Readers can download the data from [here](https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/#turbofan). In the following cells, wherever data are read from a folder, readers should change the string to point to the respective folder from their system to run this notebook seamlessly."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x1512 with 21 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/train_FD002.txt\", sep= \"\\s+\", header = None)\n",
    "plt.figure(figsize = (16, 21))\n",
    "for i in range(21):\n",
    "    temp_data = train_data.iloc[:,i+5]\n",
    "    plt.subplot(7,3,i+1)\n",
    "    plt.boxplot(temp_data)\n",
    "plt.show()\n",
    "\n",
    "def process_targets(data_length, early_rul = None):\n",
    "    \"\"\" \n",
    "    Takes datalength and earlyrul as input and \n",
    "    creates target rul.\n",
    "    \"\"\"\n",
    "    if early_rul == None:\n",
    "        return np.arange(data_length-1, -1, -1)\n",
    "    else:\n",
    "        early_rul_duration = data_length - early_rul\n",
    "        if early_rul_duration <= 0:\n",
    "            return np.arange(data_length-1, -1, -1)\n",
    "        else:\n",
    "            return np.append(early_rul*np.ones(shape = (early_rul_duration,)), np.arange(early_rul-1, -1, -1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_input_data_with_targets(input_data, target_data = None, window_length = 1, shift = 1):\n",
    "    \"\"\"Depending on values of window_length and shift, this function generates batchs of data and targets \n",
    "    from input_data and target_data.\n",
    "    \n",
    "    Number of batches = np.floor((len(input_data) - window_length)/shift) + 1\n",
    "    \n",
    "    **We don't check input dimensions uisng exception handling. So readers should be careful while using these\n",
    "    functions. If input data are not of desired dimension, either error occurs or something undesirable is \n",
    "    produced as output.**\n",
    "    \n",
    "    Arguments:\n",
    "        input_data: input data to function (Must be 2 dimensional)\n",
    "        target_data: input rul values (Must be 1D array)s\n",
    "        window_length: window length of data\n",
    "        shift: Distance by which the window moves for next batch. This is closely related to overlap\n",
    "               between data. For example, if window length is 30 and shift is 1, there is an overlap of \n",
    "               29 data points between two consecutive batches.\n",
    "        \n",
    "    \"\"\"\n",
    "    num_batches = np.int(np.floor((len(input_data) - window_length)/shift)) + 1\n",
    "    num_features = input_data.shape[1]\n",
    "    output_data = np.repeat(np.nan, repeats = num_batches * window_length * num_features).reshape(num_batches, window_length,\n",
    "                                                                                                  num_features)\n",
    "    if target_data is None:\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "        return output_data\n",
    "    else:\n",
    "        output_targets = np.repeat(np.nan, repeats = num_batches)\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "            output_targets[batch] = target_data[(shift*batch + (window_length-1))]\n",
    "        return output_data, output_targets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_test_data(test_data_for_an_engine, window_length, shift, num_test_windows = 1):\n",
    "    \"\"\" This function takes test data for an engine as first input. The next two inputs\n",
    "    window_length and shift are same as other functins. \n",
    "    \n",
    "    Finally it takes num_test_windows as the last input. num_test_windows sets how many examplles we\n",
    "    want from test data (from last). By default it extracts only the last example.\n",
    "    \n",
    "    The function return last examples and number of last examples (a scaler) as output. \n",
    "    We need the second output later. If we are extracting more than 1 last examples, we have to \n",
    "    average their prediction results. The second scaler halps us do just that.\n",
    "    \"\"\"\n",
    "    max_num_test_batches = np.int(np.floor((len(test_data_for_an_engine) - window_length)/shift)) + 1\n",
    "    if max_num_test_batches < num_test_windows:\n",
    "        required_len = (max_num_test_batches -1)* shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, max_num_test_batches\n",
    "    else:\n",
    "        required_len = (num_test_windows - 1) * shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, num_test_windows"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed trianing data shape:  (53443, 1, 21)\n",
      "Processed training ruls shape:  (53443,)\n",
      "Processed test data shape:  (1295, 1, 21)\n",
      "True RUL shape:  (259,)\n"
     ]
    }
   ],
   "source": [
    "test_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/test_FD002.txt\", sep = \"\\s+\", header = None)\n",
    "true_rul = pd.read_csv('/home/biswajit/data/cmapss_data/RUL_FD002.txt', sep = '\\s+', header = None)\n",
    "\n",
    "window_length = 1\n",
    "shift = 1\n",
    "early_rul = None\n",
    "processed_train_data = []\n",
    "processed_train_targets = []\n",
    "\n",
    "# How many test windows to take for each engine. If set to 1 (this is the defalut), only last window of test data for \n",
    "# each engine are taken. If set to a different number, that many windows from last are taken. \n",
    "# Final output is the average of output of all windows.\n",
    "num_test_windows = 5     \n",
    "processed_test_data = []\n",
    "num_test_windows_list = []\n",
    "\n",
    "columns_to_be_dropped = [0,1,2,3,4]\n",
    "\n",
    "num_machines = np.min([len(train_data[0].unique()), len(test_data[0].unique())])\n",
    "\n",
    "for i in np.arange(1, num_machines + 1):\n",
    "    \n",
    "    temp_train_data = train_data[train_data[0] == i].drop(columns=columns_to_be_dropped).values\n",
    "    temp_test_data = test_data[test_data[0] == i].drop(columns=columns_to_be_dropped).values\n",
    "    \n",
    "    # Verify if data of given window length can be extracted from both training and test data\n",
    "    if (len(temp_test_data) < window_length):\n",
    "        print(\"Test engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "    elif (len(temp_train_data) < window_length):\n",
    "        print(\"Train engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "    \n",
    "    temp_train_targets = process_targets(data_length = temp_train_data.shape[0], early_rul = early_rul)\n",
    "    data_for_a_machine, targets_for_a_machine = process_input_data_with_targets(temp_train_data, temp_train_targets, \n",
    "                                                                                window_length = window_length, shift = shift)\n",
    "    \n",
    "    # Prepare test data\n",
    "    test_data_for_an_engine, num_windows = process_test_data(temp_test_data, window_length = window_length, shift = shift,\n",
    "                                                             num_test_windows = num_test_windows)\n",
    "    \n",
    "    processed_train_data.append(data_for_a_machine)\n",
    "    processed_train_targets.append(targets_for_a_machine)\n",
    "    \n",
    "    processed_test_data.append(test_data_for_an_engine)\n",
    "    num_test_windows_list.append(num_windows)\n",
    "\n",
    "processed_train_data = np.concatenate(processed_train_data)\n",
    "processed_train_targets = np.concatenate(processed_train_targets)\n",
    "processed_test_data = np.concatenate(processed_test_data)\n",
    "true_rul = true_rul[0].values\n",
    "\n",
    "# Shuffle data\n",
    "index = np.random.permutation(len(processed_train_targets))\n",
    "processed_train_data, processed_train_targets = processed_train_data[index], processed_train_targets[index]\n",
    "\n",
    "print(\"Processed trianing data shape: \", processed_train_data.shape)\n",
    "print(\"Processed training ruls shape: \", processed_train_targets.shape)\n",
    "print(\"Processed test data shape: \", processed_test_data.shape)\n",
    "print(\"True RUL shape: \", true_rul.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed train data shape:  (53443, 21)\n",
      "Processed test data shape:  (1295, 21)\n"
     ]
    }
   ],
   "source": [
    "processed_train_data = processed_train_data.reshape(-1, processed_train_data.shape[2])\n",
    "processed_test_data = processed_test_data.reshape(-1, processed_test_data.shape[2])\n",
    "print(\"Processed train data shape: \", processed_train_data.shape)\n",
    "print(\"Processed test data shape: \", processed_test_data.shape)\n",
    "\n",
    "dtrain = xgb.DMatrix(processed_train_data, label = processed_train_targets)\n",
    "dtest = xgb.DMatrix(processed_test_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tTrain-rmse:58.31581\n",
      "[50]\tTrain-rmse:43.18841\n",
      "[100]\tTrain-rmse:41.92882\n",
      "[150]\tTrain-rmse:40.93163\n",
      "[200]\tTrain-rmse:40.09414\n",
      "[250]\tTrain-rmse:39.33012\n",
      "[300]\tTrain-rmse:38.57391\n",
      "[350]\tTrain-rmse:37.92554\n",
      "[400]\tTrain-rmse:37.30680\n",
      "[450]\tTrain-rmse:36.77434\n",
      "[499]\tTrain-rmse:36.17589\n"
     ]
    }
   ],
   "source": [
    "num_rounds = 500\n",
    "params = {\"max_depth\":3, \"learning_rate\":1, \"objective\":\"reg:squarederror\"}\n",
    "bst = xgb.train(params, dtrain, num_boost_round = num_rounds, evals = [(dtrain, \"Train\")], verbose_eval = 50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE:  31.822902561822655\n"
     ]
    }
   ],
   "source": [
    "rul_pred = bst.predict(dtest)\n",
    "\n",
    "# First split predictions according to number of windows of each engine\n",
    "preds_for_each_engine = np.split(rul_pred, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                             for ruls_for_each_engine, num_windows in zip(preds_for_each_engine, num_test_windows_list)]\n",
    "RMSE = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine))\n",
    "print(\"RMSE: \", RMSE)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With somewhat arbitrary choice of hyperparameters, we obtained an RMSE value of 31.82. But can we do better? To find out better values of hyperparameters, we can do a principled hyperparameter tuning. There are different ways to do hyperparameter search. Here, we will use simple grid search. \n",
    "\n",
    "In grid search, we first define a grid of parameters. Then for each set of parameters, we will fit a 10 xgboost models (as it is 10 fold cross validation). Finally, we will average the result of all folds for a particular parameter choice. The parameter choice that gives best score for cross validation is chosen as the best hyperparameter.\n",
    "\n",
    "Grid search of hyperparameters (with cross validation) is computationally intensive. It might take a long time on a personal computer. If that is the case, readers are advised to comment the next cell and directly use the best hyperparameter values as done in subsequent cells."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "max_depth: 2, eta: 0.01\n",
      "RMSE: 49.0129466 in 500 rounds\n",
      "\n",
      "max_depth: 2, eta: 0.1\n",
      "RMSE: 43.665301799999995 in 500 rounds\n",
      "\n",
      "max_depth: 2, eta: 0.3\n",
      "RMSE: 43.3123364 in 405 rounds\n",
      "\n",
      "max_depth: 2, eta: 0.5\n",
      "RMSE: 43.4715866 in 271 rounds\n",
      "\n",
      "max_depth: 2, eta: 1.0\n",
      "RMSE: 44.1515004 in 155 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.01\n",
      "RMSE: 46.309700899999996 in 500 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.1\n",
      "RMSE: 43.0970775 in 500 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.3\n",
      "RMSE: 43.3754196 in 183 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.5\n",
      "RMSE: 43.645552499999994 in 105 rounds\n",
      "\n",
      "max_depth: 3, eta: 1.0\n",
      "RMSE: 44.877349499999994 in 70 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.01\n",
      "RMSE: 44.588485000000006 in 500 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.1\n",
      "RMSE: 43.094026299999996 in 342 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.3\n",
      "RMSE: 43.396381399999996 in 124 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.5\n",
      "RMSE: 43.818604099999995 in 63 rounds\n",
      "\n",
      "max_depth: 4, eta: 1.0\n",
      "RMSE: 45.2248424 in 29 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.01\n",
      "RMSE: 43.87512919999999 in 500 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.1\n",
      "RMSE: 43.131317100000004 in 231 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.3\n",
      "RMSE: 43.549974399999996 in 63 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.5\n",
      "RMSE: 43.995618 in 30 rounds\n",
      "\n",
      "max_depth: 5, eta: 1.0\n",
      "RMSE: 45.593501700000004 in 15 rounds\n",
      "\n",
      "Best parameters are: Max_depth= 4, eta= 0.1, num_rounds = 342. Corresponding RMSE: 43.094026299999996\n"
     ]
    }
   ],
   "source": [
    "param_grid = [(max_depth, eta) for max_depth in np.arange(2,6) for eta in np.array([0.01, 0.1, 0.3, 0.5, 1])]\n",
    "\n",
    "min_rmse = np.inf\n",
    "best_params = None\n",
    "params = dict()\n",
    "params[\"objective\"] = \"reg:squarederror\"\n",
    "for max_depth, eta in param_grid:\n",
    "    print(\"max_depth: {}, eta: {}\".format(max_depth, eta))\n",
    "    \n",
    "    params[\"max_depth\"] = max_depth\n",
    "    params[\"eta\"] = eta\n",
    "    \n",
    "    cv_res = xgb.cv(params, dtrain, num_boost_round= num_rounds, early_stopping_rounds= 10, nfold = 10, seed = 433)\n",
    "    \n",
    "    best_rmse_val = cv_res[\"test-rmse-mean\"].min()\n",
    "    best_num_rounds = cv_res[\"test-rmse-mean\"].argmin() + 1\n",
    "    \n",
    "    print(\"RMSE: {} in {} rounds\".format(best_rmse_val, best_num_rounds))\n",
    "    print()\n",
    "    \n",
    "    if best_rmse_val < min_rmse:\n",
    "        min_rmse = best_rmse_val\n",
    "        best_params = (max_depth, eta, best_num_rounds)\n",
    "        \n",
    "print(\"Best parameters are: Max_depth= {}, eta= {}, num_rounds = {}. Corresponding RMSE: {}\".format(best_params[0],\n",
    "                                                                                                    best_params[1],\n",
    "                                                                                                    best_params[2],\n",
    "                                                                                                    min_rmse))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will use the best parameters to train the final regressor. The `num_boost_round` value obtained above is the best value for cross validation. We can take a value that is different from the above number but not very far from it. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE after hyperparameter tuning:  29.884520241000754\n"
     ]
    }
   ],
   "source": [
    "params_tuned = {\"max_depth\":4, \"eta\":0.1, \"objective\":\"reg:squarederror\"}\n",
    "bst_tuned = xgb.train(params_tuned, dtrain, num_boost_round= 350)\n",
    "\n",
    "rul_pred_tuned = bst_tuned.predict(dtest)\n",
    "\n",
    "preds_for_each_engine_tuned = np.split(rul_pred_tuned, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine_tuned = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                                   for ruls_for_each_engine, num_windows in zip(preds_for_each_engine_tuned,\n",
    "                                                                                num_test_windows_list)]\n",
    "RMSE_tuned = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine_tuned))\n",
    "print(\"RMSE after hyperparameter tuning: \", RMSE_tuned)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that while prediction, we are predicting RUL values for last 5 examples of every engine. Then we take mean of all 5 predictions for each engine and calculate final RMSE.\n",
    "\n",
    "If instead we wish to take only the last example of every engine to make predictions and calculate RUL, we can do so by taking the last prediction of every engine as calculated before and calcutate RMSE as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([   4,    9,   14,   19,   24,   29,   34,   39,   44,   49,   54,\n",
       "         59,   64,   69,   74,   79,   84,   89,   94,   99,  104,  109,\n",
       "        114,  119,  124,  129,  134,  139,  144,  149,  154,  159,  164,\n",
       "        169,  174,  179,  184,  189,  194,  199,  204,  209,  214,  219,\n",
       "        224,  229,  234,  239,  244,  249,  254,  259,  264,  269,  274,\n",
       "        279,  284,  289,  294,  299,  304,  309,  314,  319,  324,  329,\n",
       "        334,  339,  344,  349,  354,  359,  364,  369,  374,  379,  384,\n",
       "        389,  394,  399,  404,  409,  414,  419,  424,  429,  434,  439,\n",
       "        444,  449,  454,  459,  464,  469,  474,  479,  484,  489,  494,\n",
       "        499,  504,  509,  514,  519,  524,  529,  534,  539,  544,  549,\n",
       "        554,  559,  564,  569,  574,  579,  584,  589,  594,  599,  604,\n",
       "        609,  614,  619,  624,  629,  634,  639,  644,  649,  654,  659,\n",
       "        664,  669,  674,  679,  684,  689,  694,  699,  704,  709,  714,\n",
       "        719,  724,  729,  734,  739,  744,  749,  754,  759,  764,  769,\n",
       "        774,  779,  784,  789,  794,  799,  804,  809,  814,  819,  824,\n",
       "        829,  834,  839,  844,  849,  854,  859,  864,  869,  874,  879,\n",
       "        884,  889,  894,  899,  904,  909,  914,  919,  924,  929,  934,\n",
       "        939,  944,  949,  954,  959,  964,  969,  974,  979,  984,  989,\n",
       "        994,  999, 1004, 1009, 1014, 1019, 1024, 1029, 1034, 1039, 1044,\n",
       "       1049, 1054, 1059, 1064, 1069, 1074, 1079, 1084, 1089, 1094, 1099,\n",
       "       1104, 1109, 1114, 1119, 1124, 1129, 1134, 1139, 1144, 1149, 1154,\n",
       "       1159, 1164, 1169, 1174, 1179, 1184, 1189, 1194, 1199, 1204, 1209,\n",
       "       1214, 1219, 1224, 1229, 1234, 1239, 1244, 1249, 1254, 1259, 1264,\n",
       "       1269, 1274, 1279, 1284, 1289, 1294])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "indices_of_last_examples = np.cumsum(num_test_windows_list) - 1\n",
    "indices_of_last_examples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE (Taking only last examples):  31.160288117330502\n"
     ]
    }
   ],
   "source": [
    "preds_for_last_example = np.concatenate(preds_for_each_engine_tuned)[indices_of_last_examples]\n",
    "\n",
    "RMSE_new = np.sqrt(mean_squared_error(true_rul, preds_for_last_example))\n",
    "print(\"RMSE (Taking only last examples): \", RMSE_new)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you are not convinced by above calculations, take a look at the last section of [this notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_FD001_xgboost_piecewise_linear_degradation_model.ipynb)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For CMAPSS data, along with RMSE another metric (S-score) is usually reported in literature. S-score is defined as:\n",
    "\n",
    "$$S= \\sum_{i=1}^N{s_i}$$\n",
    "\n",
    "where, \n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "    s_i=\n",
    "    \\begin{cases}\n",
    "      (e^{-\\frac{d_i}{13}})-1, & \\text{for}\\ d_i < 1 \\\\\n",
    "      (e^{\\frac{d_i}{10}})-1, & \\text{for}\\ d_i \\geq 1\\\\\n",
    "    \\end{cases}\n",
    "  \\end{equation}\n",
    "  $$\n",
    "  \n",
    "We can compute the S-metric as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_s_score(rul_true, rul_pred):\n",
    "    \"\"\"\n",
    "    Both rul_true and rul_pred should be 1D numpy arrays.\n",
    "    \"\"\"\n",
    "    diff = rul_pred - rul_true\n",
    "    return np.sum(np.where(diff < 0, np.exp(-diff/13)-1, np.exp(diff/10)-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "S-score:  45811.69256309788\n"
     ]
    }
   ],
   "source": [
    "s_score = compute_s_score(true_rul, preds_for_last_example)\n",
    "print(\"S-score: \", s_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot true and predicted RUL values\n",
    "plt.plot(true_rul, label = \"True RUL\", color = \"red\")\n",
    "plt.plot(preds_for_last_example, label = \"Pred RUL\", color = \"blue\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also plot variable importance score."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:title={'center':'Feature importance'}, xlabel='F score', ylabel='Features'>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xgb.plot_importance(bst_tuned)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As a final note remember that hyperparameter tuning is more of an art than science. It is possible to obtain better results than what has been obtained here by choosing better set of hyperparameters.\n",
    "\n",
    "For other reproducible results on RUL, interested readers can visit my [project page](https://biswajitsahoo1111.github.io/rul_codes_open). "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "tf_cpu_23",
   "language": "python",
   "name": "tf_cpu_23"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
